<text><span class="style8">temOfList(list,[lineDelimChar],keyItemNum[,itemDelimChar])</span><span class="style7">ΓÇó returns a list whose lines contain only one item from each line of the original list</span></text>
</content>
<content>
<layer>background</layer>
<id>9</id>
<text>current version: 1.1- fixed bug to handle empty list- itemDelimChar is now optional parameter</text>
</content>
<name>itemOfList</name>
<script></script>
</card>
card_7500.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style8">istNOTlist(list1,list2[,lineDelimChar,C|S|D])</span><span class="style7">ΓÇó returns the list which is the complement of the intersect of two listsΓÇó the fourth parameter may include "C" for case-sensitive compares, "S" to indicate the lists are sorted, or "D" to indicate the lists are sorted in descending orderΓÇó the operation works faster on sorted listsΓÇó even if lines appear more than once in either list, they will only appear once in the returned list</span></text>
</content>
<content>
<layer>background</layer>
<id>9</id>
<text>current version: 1.1- fixed bug to handle empty lists</text>
</content>
<name>listNOTlist</name>
<script></script>
</card>
card_7225.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style8">istORlist(list1,list2[,lineDelimChar,C|S|D])</span><span class="style7">ΓÇó returns the list which is the union of two listsΓÇó the fourth parameter may include "C" for case-sensitive compares, "S" to indicate the lists are sorted, or "D" to indicate the lists are sorted in descending orderΓÇó the operation works faster on sorted listsΓÇó even if lines appear more than once in either list, they will only appear once in the returned list</span></text>
</content>
<content>
<layer>background</layer>
<id>9</id>
<text>current version: 1.1- fixed bug to handle empty lists</text>
</content>
<name>listORlist</name>
<script></script>
</card>
card_7035.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style8">istANDlist(list1,list2[,lineDelimChar,C|S|D])</span><span class="style7">ΓÇó returns the list which is the intersect of two listsΓÇó the fourth parameter may include "C" for case-sensitive compares, "S" to indicate the lists are sorted, or "D" to indicate the lists are sorted in descending orderΓÇó the operation works faster on sorted listsΓÇó even if lines appear more than once in either list, they will only appear once in the returned list</span></text>
</content>
<content>
<layer>background</layer>
<id>9</id>
<text>current version: 1.1- fixed bug to handle empty lists</text>
</content>
<name>listANDlist</name>
<script></script>
</card>
card_6761.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style8">eastListLine(list[,lineDelimChar,C|N,keyItemNum, itemDelimChar])</span><span class="style7">ΓÇó returns the number of the line with the least valueΓÇó third parameter may include "N" to indicate numeric data or "C" for case-sensitive comparisonsΓÇó if a keyItemNum is specified, only that item of each line will be examined</span></text>
</content>
<content>
<layer>background</layer>
<id>9</id>
<text>current version: 1.1- fixed bug to handle empty lists</text>
</content>
<name>leastListLine</name>
<script></script>
</card>
card_6637.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style8">reatestListLine(list[,lineDelimChar,N|C,keyItemNum, itemDelimChar])</span><span class="style7">ΓÇó returns the number of the line with the greatest valueΓÇó third parameter may be "N" to indicate numeric data or "C" for case-sensitive comparisonsΓÇó if a keyItemNum is specified, only that item of each line will be examined</span></text>
</content>
<content>
<layer>background</layer>
<id>9</id>
<text>current version: 1.1- fixes bug to handle empty list</text>
</content>
<name>greatestListLine</name>
<script></script>
</card>
card_6398.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style8">eplaceListLine(list,[lineDelimChar],newLine,lineNum)</span><span class="style7">ΓÇó returns the same list but with the contents of newLine replacing the contents of line lineNumΓÇó much like saying "put newLine into line lineNum of myList" in HyperTalkΓÇó if lineNum > 0, but the line doesn't already exist, the list will be extended to accommodate it, creating blank lines if necessary.</span></text>
</content>
<content>
<layer>background</layer>
<id>9</id>
<text>current version: 1.1- fixed bug to handle empty list or newLine</text>
</content>
<name>replaceListLine</name>
<script></script>
</card>
card_8115.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style8">emoveListLine(list,[lineDelimChar],lineNum)</span><span class="style7">ΓÇó returns the same list but with line lineNum removedΓÇó much like saying "delete line n of myList" in HyperTalkΓÇó lineNum specifies which line of the list to remove</span></text>
</content>
<content>
<layer>background</layer>
<id>9</id>
<text>current version: 1.1- fixed bug to handle empty list</text>
</content>
<name>removeListLine</name>
<script></script>
</card>
card_5650.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style8">nsertListLine(list,[lineDelimChar],newLine,beforeLineNum)</span><span class="style7">ΓÇó returns the same list but with the contents of newLine (& a line delimiter) inserted before a given lineΓÇó much like saying "put newLine & return before line lineNum of myList" in HyperTalkΓÇó if beforeLineNum > 0, but the line doesn't already exist, the list will be extended to accommodate it, creating blank lines if necessary.</span></text>
</content>
<content>
<layer>background</layer>
<id>9</id>
<text>current version: 1.1- fixed bug so new line could be added immediately after existing list- fixed bug to handle empty list or newline</text>
</content>
<name>insertListLine</name>
<script></script>
</card>
card_5465.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style8">hichListLine(list,[lineDelimChar],theLine[,C|S|D|N, keyItemNum,itemDelimChar])</span><span class="style9"></span><span class="style7">ΓÇó returns the line number on which the contents of theLine were foundΓÇó the fourth parameter may include "C" for case-sensitive compares, "S" to indicate that the list is sorted, or "D" to indicate that the list is sorted in descending order, or "N" to indicate that the data of interest are numericΓÇó if theLine appears more than once in the list, the location of the first occurrence (from the top) will be returnedΓÇó if the list is not sorted, and theLine is not found in the list, the function returns 0ΓÇó if the list is sorted, and theLine is not found, the function returns a negative value which indicates which line theLine should be inserted before to be in orderΓÇó keyItemNum can be used to restrict the comparison of theLine to only one item within each line of the list. In this case theLine should not contain a whole line, but just the item of interest.ΓÇó if you indicate that the list is sorted, and use a key field, or indicate case-sensitive or numeric data, make sure the list is sorted by those same criteria, otherwise the results will not necessarily make sense</span></text>
</content>
<content>
<layer>background</layer>
<id>9</id>
<text>current version: 1.1- bug fix to handle empty list or line number</text>
</content>
<name>whichListLine</name>
<script></script>
</card>
card_5288.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style8">ortList(list[,lineDelimChar,C|N|D,keyItemNum,itemDelimChar)</span><span class="style7">ΓÇó returns a sorted listΓÇó the third parameter may include "C" for case-sensitive sorting, "N" for numeric sorting (so that 100 > 20), or "D" to sort in descending orderΓÇó keyItemNum may be used to indicate which item of each line should be used for the sort</span></text>
</content>
<content>
<layer>background</layer>
<id>9</id>
<text>current version: 1.1- fixed major bug which caused sorted order to be incorrect in some cases (sorry!)- fixed bug to handle empty list</text>
</content>
<name>sortList</name>
<script></script>
</card>
card_4921.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style8">thListLine(list,[lineDelimChar],lineNum)</span><span class="style9"></span><span class="style7">ΓÇó returns the nth line of a listΓÇó much like saying "line n of myList" in HyperTalkΓÇó lineNum specifies which line of the list to returnΓÇó the contents of the nth line are returned without the trailing delimiter character</span></text>
</content>
<content>
<layer>background</layer>
<id>9</id>
<text>current version: 1.1- fixes bug to handle empty list</text>
</content>
<name>nthListLine</name>
<script></script>
</card>
card_4828.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style8">umListItems(list[,lineDelimChar])</span><span class="style9"></span><span class="style7">ΓÇó returns the number of lines in a listΓÇó much like saying "the number of lines in myList" in HyperTalk</span></text>
</content>
<content>
<layer>background</layer>
<id>9</id>
<text>current version: 1.0</text>
</content>
<name>numListLines</name>
<script></script>
</card>
card_4597.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>ΓÇó these are all XFCN's, so they all return a value to HyperCardΓÇó the first parameter is always the list containerΓÇó the second parameter is usually the list delimiter characterΓÇó optional parameters are indicated in square bracketsΓÇó note that some optional parameters may be left empty so that default values will be used, but not missing altogetherΓÇó the default line delimiter character (lineDelimChar) is "return"ΓÇó the default item delimiter character is "comma"ΓÇó although it is not a required feature of lists passed to these XFCN's, some of the functions internally require a final line delimiter character as the last character of the list. They will ensure that this final character is there before proceeding, and as a matter of consistency, all lists returned by these functions will have a final line delimiter character attached.ΓÇó where it is an option, case-sensitive comparisons for sorting & matching are always fasterΓÇó passing "!" as the first parameter to these XFCN's will return my copyright notice, and "?" will return the syntax. Passing incorrect numbers of parameters may also cause the XFCN to return the syntax</text>
</content>
<name>General Details</name>
<script></script>
</card>
card_4098.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>Internet mail: dward@oise1.oise.on.caEarth mail: Doug Ward 20 Page St. Toronto, Ontario M6G 1J2Even if you don't want to send me money (although I do expect you to respect the shareware terms I described in "Legal Stuff"), I'd like to get feedback about these XFCN's. Please report any bugs, confusion, suggestions, or desires to me.If you want to purchase my source code for learning (non-commercial) purposes, make me an offer.</text>
</content>
<name>How to Contact me</name>
<script></script>
</card>
card_4051.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text> These XFCN's are shareware, and ©1993, Doug Ward, Active Window. You are free to muck around with them for your own use as much as you wish, free of charge. You may also freely distribute this package as long as this documentation is passed along with the XFCN's. If you want to distribute any or all of them in your own non-commercial stack or other product, you must pay me a $15 fee, and display my copyright notice in your work. If you want to distribute any or all of these XFCN's in or with a commercial product, you can contact me to arrange a licence to do so.</text>
</content>
<name>Legal Stuff</name>
<script></script>
</card>
card_2844.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style7"> I wrote these XFCN's to provide a simple and versatile programming interface for manipulating text lists in HyperCard. For the purposes of these XFCN's, </span><span class="style2">lists</span><span class="style7"> are composed of </span><span class="style2">lines</span><span class="style7"> which may be composed of multiple </span><span class="style2">items</span><span class="style7">. By default, lines and items correspond to HyperTalk's line and item chunks ΓÇö i.e. lines are delimited by return characters and items are delimited by commas ΓÇö but you may use any single character to delimit lines or items (of course, not the same character for both). This gives you more flexibility as a programmer, allowing you to do things like embed lists within lists.This is version 1.1 which fixes some minor and major bugs.</span></text>
</content>
<content>
<layer>background</layer>
<id>9</id>
<text>Version 1.1 of this stack includes version 1.1 of almost all of the XFCN's.This version fixes a few minor annoying bugs, and one major one in the sortList XFCN.To view the version histories for the various individual XFCN's, click the version button on the card of interest, or choose "Version History" from the XFCN's menu.</text>